The following functions are used to set or inspect the (maximum) number of pages for each type class, for contiguous blocks, or for relocatable blocks.
allocate type number[Function]
allocated-pages type[Function]
maximum-allocatable-pages type[Function]
allocate-contiguous-pages number[Function]
allocated-contiguous-pages[Function]
maximum-contiguous-pages[Function]
allocate-relocatable-pages number[Function]
allocated-relocatable-pages[Function]
If the pages for a particular type class are exhausted after the maximum number of pages for that class have been allocated, and if there remain no free cells (actually, if there remain very few cells), KCL behaves as directed by the value of the KCL specific variable *ignore-maximum-pages*. If the value is nil, then KCL signals a correctable error and enters the break loop. The user can reset the maximum number by calling allocate and then continue the execution of the program by typing :r.
Example:
>(make-list 100000) Correctable error: The storage for CONS is exhausted. Currently, 531 pages are allocated. Use ALLOCATE to expand the space. Signalled by MAKE-LIST. Broken at FUNCALL. >>(ALLOCATE 'CONS 1000) t >>:r (nil nil nil nil nil nil nil nil nil nil ............
The user can also reset the maximum number of pages for relocatable blocks and for contiguous blocks in a similar manner. On the other hand, if the value of *ignore-maximum-pages* is non- nil, then KCL automatically increments the maximum number of pages for the class by 50 percent. The initial value of *ignore-maximum-pages* is t.